package com.sywb.chuangyebao.bean;

import android.text.TextUtils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.sywb.chuangyebao.Constants;

import org.bining.footstone.db.annotation.Column;
import org.bining.footstone.db.annotation.PrimaryKey;
import org.bining.footstone.db.annotation.Table;
import org.bining.footstone.db.enums.AssignType;

import java.io.Serializable;
import java.util.HashMap;

/**
 * 用户信息
 */
@Table(Constants.TABLE_USERINFO)
public class UserInfo implements Serializable {

    @PrimaryKey(AssignType.BY_MYSELF)
    @Column("uid")
    public String uid;
    // public String openid;
    @Column("email")
    public String email;// 邮箱
    @Column("mobile")
    public String mobile;// 手机号

    @Column("username")
    public String username;// 用户名

    @Column("nickname")
    public String nickname;// 昵称
    // public String real_name;//真实名称
    // public int gender;//性别 0:保密 1:男 2:女
    // public int birth_year;//出生年
    // public int birth_month;//出生月
    // public int birth_day;//出生日
    // public int birth_area_id;//出生地区ID
    // public int blood_type;//血型 0:unKnown 1:A 2:B 3:O 4:AB 5:Other
    // public int live_area_id;//居住地区ID

    @Column("avatar_s")
    public String avatar_s;//小头像
    @Column("avatar_l")
    public String avatar_l;//大头像
    @Column("avatar_hd")
    public String avatar_hd;//高清头像
    @Column("brief_intro")
    public String brief_intro;// 简介
    @Column("bg_img")
    public String bg_img;// 背景图

    @Column("user_type")
    public int user_type;// 用户类型 1:个人 2:企业
    @Column("user_role")
    public String user_role; // 用户角色（多选）：0=未知 1=普通用户 2=达人  3=导师（专家） 5=创业顾问 6=项目号 7=服务商
    @Column("realname_verify")
    public int realname_verify;// 是否实名认证 0:未验证 1:已验证
    @Column("mobile_verify")
    public int mobile_verify;// 是否手机号验证 0:未验证 1:已验证
    @Column("email_verify")
    public int email_verify;// 是否邮箱验证 0:未验证 1:已验证

    // public int passed;// 是否启用 0:禁用 1:启用
    // public int bind_mode;//绑定方式 0:登录后 1:新注册 2:系统生成

    @Column("access_token")
    public String access_token;// 授权Token
    @Column("expires_in")
    public int expires_in;// Access Token有效期(秒) AS:259200 表示3天
    @Column("expires_time")
    public int expires_time;// Access Token过期时间(秒) AS:令牌生成时间戳+expires_in
    @Column("refresh_token")
    public String refresh_token;//在授权自动续期步骤中，获取新的Access_Token需要提供的参数

    @Column("token")
    public String token;// 跨平台Token
    @Column("token_sig")
    public String token_sig;// 跨平台登录Token

    public String getShowName() {
        if (!TextUtils.isEmpty(nickname)) {
            return nickname;
        }
        if (!TextUtils.isEmpty(username)) {
            return username;
        }
        return "3158创业宝";
    }

    public String getShowAvatar() {
        return avatar_l;
    }

    public int getUserRole() {
        if (!TextUtils.isEmpty(user_role)) {
            HashMap<Integer, String> userRole = JSON.parseObject(user_role, new TypeReference<HashMap<Integer, String>>() {
            });
            if (userRole.containsKey(Constants.USER_TYPE_V)) {
                return Constants.USER_TYPE_V;
            } else if (userRole.containsKey(Constants.USER_TYPE_PROJECT)) {
                return Constants.USER_TYPE_PROJECT;
            } else if (userRole.containsKey(Constants.USER_TYPE_SERVICE)) {
                return Constants.USER_TYPE_SERVICE;
            } else if (userRole.containsKey(Constants.USER_TYPE_TUTOR)) {
                return Constants.USER_TYPE_TUTOR;
            }
        }
        return Constants.USER_TYPE_NORMAL;
    }
}
